package com.freework.freedbm.dao.jdbcm.map.dto;

import java.util.Map;
import java.util.Set;

import com.freework.freedbm.base.BaseDTO;
import com.freework.freedbm.cfg.tablecfg.TableDataManager;
import com.freework.freedbm.dao.jdbcm.JdbcForDTO;

class UpdateMapToDTO extends MapDTO implements BaseDTO{
	JdbcForDTO []updateField=null;
	
	
	public  UpdateMapToDTO(MapDTOCfg cfg,Map map){
		super(cfg);
		this.updateField=new JdbcForDTO[map.size()<cfg.getFields().length?map.size():cfg.getFields().length];
		Set<Map.Entry<String,Object>> entrys=map.entrySet();
		int i=0;
		for (Map.Entry<String,Object> entry : entrys) {

			if(entry.getKey()!=null){
				JdbcForDTO jft=	cfg.getField(entry.getKey());

				if(jft!=null){
					updateField[i]=jft;
				    this.values[((MapFieldInfo)jft).getOrder()]=entry.getValue();
					i++;
				}
			}
		}
		if(i==0){
			updateField=new JdbcForDTO[0];
		}else if(i<updateField.length){
			JdbcForDTO  tmp[]=new JdbcForDTO[i];
			System.arraycopy(updateField, 0, tmp, 0,i);
			updateField=tmp;
		}
	}
	
	public  JdbcForDTO[] getUpdateField(){
			return updateField;

	}
	public TableDataManager getManagerCfg() {
		return ((MapDTOCfg)keysIndex);
	}

	public Object getIndex(int index) {
		return values[index];

	}
}
